package com.jt.controller;

import com.jt.pojo.Item;
import com.jt.pojo.ItemDesc;
import com.jt.pojo.ItemParam;
import com.jt.service.ItemService;
import com.jt.vo.EasyUITable;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 实现商品的业务逻辑
 * @author 冬虫虫
 */
@RestController
@RequestMapping("/item")
public class ItemController {
	
	@Autowired
	@Qualifier("itemServiceImpl")
	private ItemService itemService;

	/**
	 * 分页查询商品
	 * @param page 页码值
	 * @param rows 每页记录数
	 * @return	表格数据
	 */
	@RequestMapping("/query")
	public EasyUITable doQueryItems(Integer page,Integer rows){
		return itemService.findItemByPage(page,rows);
	}

	/**
	 * 商品新增
	 * @param item 商品信息
	 * @return 提示信息
	 */
	@RequestMapping("/save")
	public SysResult doSaveItem(Item item, ItemDesc itemDesc,ItemParam itemParam){
		itemService.saveItem(item,itemDesc,itemParam);
		return SysResult.success("新增商品成功!",null);
	}

	/**
	 * 修改商品信息
	 * @param item 修改后的商品信息
	 * @return 提示信息
	 */
	@RequestMapping("/update")
	public SysResult doUpdateItem(Item item,ItemDesc itemDesc,ItemParam itemParam){
		itemService.updateItem(item,itemDesc,itemParam);
		return SysResult.success("修改商品成功!",null);
	}

	/**
	 * 商品下架操作
	 * status:1为上架  2为下架
	 * @param ids 需要下架的商品集合
	 * @return 提示信息
	 */
	@RequestMapping("/instock")
	public SysResult doInstockItems(Long[] ids){
		int status=2;
		itemService.updateItemStatus(ids,status);
		return SysResult.success("下架商品成功!",null);
	}

	/**
	 * 商品上架操作
	 * @param ids 需要上架的商品id集合
	 * @return 提示信息
	 */
	@RequestMapping("/reshelf")
	public SysResult doReshelfItems(Long[] ids){
		int status=1;
		itemService.updateItemStatus(ids,status);
		return SysResult.success("上架商品成功!",null);
	}

	/**
	 * 商品删除操作
	 * @param ids 需要删除的商品的id集合
	 * @return 提示信息
	 */
	@RequestMapping("/delete")
	public SysResult doDeleteItems(Long[] ids){
		itemService.deleteItems(ids);
		return SysResult.success("删除商品成功!",null);
	}

	/**
	 * 根据ItemId查询商品描述
	 * url:/query/item/desc/1474392451
	 * 参数:采用restFul方式实现参数的传递
	 * @param itemId 商品id
	 * @return 商品描述信息
	 */
	@RequestMapping("/query/item/desc/{itemId}")
	public SysResult doFindItemDescById(@PathVariable("itemId") Long itemId){
		ItemDesc itemDesc=itemService.findItemDescById(itemId);
		return SysResult.success(itemDesc);
	}

}
